"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/10/29 13:55
@Description : 
函数的分类：
   1. 对象函数   函数定义时必须有一个默认参数self
   2. 类函数    函数属于类函数调用时会自动传入一个类对象
   3. 静态函数   函数定义时不需要默认参数  self  类对象   工具类
"""

class Aoo:
    name = 'aoo name'

    def __init__(self, name):
        self.name = name

    # 对象函数
    def method1(self):
        print(f"this is method 1 name = {self.name},id={id(self)},type={type(self)}")

    # 类函数
    @classmethod
    def method2(cls):
        print(f"this is method 2 name = {cls.name},id = {id(cls)},type={type(cls)}")

    # 静态函数
    @staticmethod
    def method3():
        print(f'this is method3')


# 创建对象
aoo = Aoo('instance name')
print(f'aoo id:{id(aoo)}')

# 调用函数
aoo.method1()
aoo.method2()
aoo.method3()

# 调用静态方法
Aoo.method3()
# 调用类方法
Aoo.method2()
# 类调用实例方法  直接调用会报错  但是可以手动传递实例对象
# Aoo.method1()  # TypeError: Aoo.method1() missing 1 required positional argument: 'self'
Aoo.method1(aoo)